/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 * Copyright 2008 Rhythm Computing All rights reserved.
 * 
 * Copyable.java	
 * @date: Oct 12, 2008
 * @author Michael J. Lee
 * 
 */

package com.rhythm.base;


/**
 *Common interface for object that are allowed to copy themselves into 
 * a new instance.
 * @param <T> The type of copyable object
 * @author Michael J. Lee @ rhythm computing
 */
public interface Copyable<T> {

    /**
     * Creates a new copy of the current object
     * @return a copye of the current object
     */
    public T copy();
}
